home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 261_01 / asmt.c < prev    next >
Text File  |  1988-02-23  |  26KB  |  856 lines

  1. /* asmt.c - mnemonic tables for as68, a 68000 assembler...
  2.  *    (C) Copyright 1982 Steve Passe        
  3.  *    All Rights Reserved              
  4.  *
  5.  * version 1.00   created 11/2/82   
  6.  * version 1.01
  7.  *
  8.  *  8/30/83 ver. 1.01 modified for Aztec ver. 1.05g smp
  9.  *
  10.  */
  11.  
  12. /* begincode */
  13.  
  14. #include "as68.h"
  15. #define    NULL 0
  16.  
  17. /* def of mtable size, 'MTSIZE'(205), is now in as68.h */
  18.  
  19. struct _mtable mtable[MTSIZE] = {
  20. /*  _mnem[8]    _mvi    _mvc    _nops
  21.  */
  22.     "!dummy",    0,    1,    0,
  23.     "abcd",    1,    2,    2,
  24.     "add",    18,    10,    2,
  25.     "add.b",    3,    5,    2,
  26.     "add.l",    8,      10,    2,
  27.     "add.w",    18,     10,    2,
  28.     "addq",    33,     3,    2,
  29.     "addq.b",    28,     2,    2,
  30.     "addq.l",    30,     3,    2,
  31.     "addq.w",    33,     3,    2,
  32.     "addx",    40,     2,    2,
  33.     "addx.b",    36,     2,    2,
  34.     "addx.l",    38,     2,    2,
  35.     "addx.w",    40,     2,    2,
  36.     "and",    53,     6,    2,
  37.     "and.b",    42,     6,    2,
  38.     "and.l",    48,     5,    2,
  39.     "and.w",    53,     6,    2,
  40.     "asl",    63,     3,    2,
  41.     "asl.b",    59,     2,    2,
  42.     "asl.l",    61,     2,    2,
  43.     "asl.w",    63,     3,    2,
  44.     "asr",    70,     3,    2,
  45.     "asr.b",    66,     2,    2,
  46.     "asr.l",    68,     2,    2,
  47.     "asr.w",    70,     3,    2,
  48.     "bcc",    73,     1,    1,
  49.     "bcc.s",    74,     1,    1,
  50.     "bchg",    75,     4,    2,
  51.     "bclr",    79,     4,    2,
  52.     "bcs",    83,     1,    1,
  53.     "bcs.s",    84,     1,    1,
  54.     "beq",    85,     1,    1,
  55.     "beq.s",    86,     1,    1,
  56.     "bge",    87,     1,    1,
  57.     "bge.s",    88,     1,    1,
  58.     "bgt",    89,     1,    1,
  59.     "bgt.s",    90,     1,    1,
  60.     "bhi",    91,     1,    1,
  61.     "bhi.s",    92,     1,    1,
  62.     "ble",    93,     1,    1,
  63.     "ble.s",    94,     1,    1,
  64.     "bls",    95,     1,    1,
  65.     "bls.s",    96,     1,    1,
  66.     "blt",    97,     1,    1,
  67.     "blt.s",    98,     1,    1,
  68.     "bmi",    99,     1,    1,
  69.     "bmi.s",    100,    1,    1,
  70.     "bne",    101,    1,    1,
  71.     "bne.s",    102,    1,    1,
  72.     "bpl",    103,    1,    1,
  73.     "bpl.s",    104,    1,    1,
  74.     "bra",    105,    1,    1,
  75.     "bra.s",    106,    1,    1,
  76.     "bset",    107,    4,    2,
  77.     "bsr",    111,    1,    1,
  78.     "bsr.s",    112,    1,    1,
  79.     "btst",    113,    4,    2,
  80.     "bvc",    117,    1,    1,
  81.     "bvc.s",    118,    1,    1,
  82.     "bvs",    119,    1,    1,
  83.     "bvs.s",    120,    1,    1,
  84.     "chk",    121,    3,    2,
  85.     "clr",    128,    2,    1,
  86.     "clr.b",    124,    2,    1,
  87.     "clr.l",    126,    2,    1,
  88.     "clr.w",    128,    2,    1,
  89.     "cmp",    143,    9,    2,
  90.     "cmp.b",    130,    4,    2,
  91.     "cmp.l",    134,    9,    2,
  92.     "cmp.w",    143,    9,    2,
  93.     "cmpm",    154,    1,    2,
  94.     "cmpm.b",    152,    1,    2,
  95.     "cmpm.l",    153,    1,    2,
  96.     "cmpm.w",    154,    1,    2,
  97.     "dbcc",    155,    1,    2,
  98.     "dbcs",    156,    1,    2,
  99.     "dbeq",    157,    1,    2,
  100.     "dbf",    158,    1,    2,
  101.     "dbge",    159,    1,    2,
  102.     "dbgt",    160,    1,    2,
  103.     "dbhi",    161,    1,    2,
  104.     "dble",    162,    1,    2,
  105.     "dbls",    163,    1,    2,
  106.     "dblt",    164,    1,    2,
  107.     "dbmi",    165,    1,    2,
  108.     "dbne",    166,    1,    2,
  109.     "dbpl",    167,    1,    2,
  110.     "dbra",    168,    1,    2,
  111.     "dbt",    169,    1,    2,
  112.     "dbvc",    170,    1,    2,
  113.     "dbvs",    171,    1,    2,
  114.     "divs",    172,    3,    2,
  115.     "divu",    175,    3,    2,
  116.     "eor",    187,    5,    2,
  117.     "eor.b",    178,    5,    2,
  118.     "eor.l",    183,    4,    2,
  119.     "eor.w",    187,    5,    2,
  120.     "exg",    192,    4,    2,
  121.     "ext",    197,    1,    1,
  122.     "ext.l",    196,    1,    1,
  123.     "ext.w",    197,    1,    1,
  124.     "jmp",    198,    1,    1,
  125.     "jsr",    199,    1,    1,
  126.     "lea",    200,    1,    2,
  127.     "link",    201,    1,    2,
  128.     "lsl",    206,    3,    2,
  129.     "lsl.b",    202,    2,    2,
  130.     "lsl.l",    204,    2,    2,
  131.     "lsl.w",    206,    3,    2,
  132.     "lsr",    213,    3,    2,
  133.     "lsr.b",    209,    2,    2,
  134.     "lsr.l",    211,    2,    2,
  135.     "lsr.w",    213,    3,    2,
  136.     "move",    236,    20,    2,
  137.     "move.b",    216,    6,    2,
  138.     "move.l",    222,    14,    2,
  139.     "move.w",    236,    20,    2,
  140.     "movem",    260,    4,    2,
  141.     "movem.l",    256,    4,    2,
  142.     "movem.w",    260,    4,    2,
  143.     "movep",    266,    2,    2,
  144.     "movep.l",    264,    2,    2,
  145.     "movep.w",    266,    2,    2,
  146.     "moveq",    268,    1,    2,
  147.     "muls",    269,    3,    2,
  148.     "mulu",    272,    3,    2,
  149.     "nbcd",    275,    2,    1,
  150.     "neg",    281,    2,    1,
  151.     "neg.b",    277,    2,    1,
  152.     "neg.l",    279,    2,    1,
  153.     "neg.w",    281,    2,    1,
  154.     "negx",    287,    2,    1,
  155.     "negx.b",    283,    2,    1,
  156.     "negx.l",    285,    2,    1,
  157.     "negx.w",    287,    2,    1,
  158.     "nop",    289,    1,    0,
  159.     "not",    294,    2,    1,
  160.     "not.b",    290,    2,    1,
  161.     "not.l",    292,    2,    1,
  162.     "not.w",    294,    2,    1,
  163.     "or",    307,    6,    2,
  164.     "or.b",    296,    6,    2,
  165.     "or.l",    302,    5,    2,
  166.     "or.w",    307,    6,    2,
  167.     "pea",    313,    1,    1,
  168.     "reset",    314,    1,    0,
  169.     "rol",    319,    3,    2,
  170.     "rol.b",    315,    2,    2,
  171.     "rol.l",    317,    2,    2,
  172.     "rol.w",    319,    3,    2,
  173.     "ror",    326,    3,    2,
  174.     "ror.b",    322,    2,    2,
  175.     "ror.l",    324,    2,    2,
  176.     "ror.w",    326,    3,    2,
  177.     "roxl",    333,    3,    2,
  178.     "roxl.b",    329,    2,    2,
  179.     "roxl.l",    331,    2,    2,
  180.     "roxl.w",    333,    3,    2,
  181.     "roxr",    340,    3,    2,
  182.     "roxr.b",    336,    2,    2,
  183.     "roxr.l",    338,    2,    2,
  184.     "roxr.w",    340,    3,    2,
  185.     "rte",    343,    1,    0,
  186.     "rtr",    344,    1,    0,
  187.     "rts",    345,    1,    0,
  188.     "sbcd",    346,    2,    2,
  189.     "scc",    348,    2,    1,
  190.     "scs",    350,    2,    1,
  191.     "seq",    352,    2,    1,
  192.     "sf",    354,    2,    1,
  193.     "sge",    356,    2,    1,
  194.     "sgt",    358,    2,    1,
  195.     "shi",    360,    2,    1,
  196.     "sle",    362,    2,    1,
  197.     "sls",    364,    2,    1,
  198.     "slt",    366,    2,    1,
  199.     "smi",    368,    2,    1,
  200.     "sne",    370,    2,    1,
  201.     "spl",    372,    2,    1,
  202.     "st",    374,    2,    1,
  203.     "stop",    376,    1,    1,
  204.     "sub",    392,    10,    2,
  205.     "sub.b",    377,    5,    2,
  206.     "sub.l",    382,    10,    2,
  207.     "sub.w",    392,    10,    2,
  208.     "subq",    407,    3,    2,
  209.     "subq.b",    402,    2,    2,
  210.     "subq.l",    404,    3,    2,
  211.     "subq.w",    407,    3,    2,
  212.     "subx",    414,    2,    2,
  213.     "subx.b",    410,    2,    2,
  214.     "subx.l",    412,    2,    2,
  215.     "subx.w",    414,    2,    2,
  216.     "svc",    416,    2,    1,
  217.     "svs",    418,    2,    1,
  218.     "swap",    420,    1,    1,
  219.     "tas",    421,    2,    1,
  220.     "trap",    423,    1,    1,
  221.     "trapv",    424,    1,    0,
  222.     "tst",    429,    2,    1,
  223.     "tst.b",    425,    2,    1,
  224.     "tst.l",    427,    2,    1,
  225.     "tst.w",    429,    2,    1,
  226.     "unlk",    431,    1,    1
  227. };
  228.  
  229. int nn(), nnoy(), nnyy(), nx(), nnxx(),    nd(), nd2(), ndob(), ndkk();
  230. int ndoy(), ndyy(), ndyz(), ne(), nf(), nf2(), nfob(), nfoy(), nfyy(), nfyz();
  231. int nhmm(), nj(), njmm(), nr(), nr2(), nrxx(), nryy(), nsmm(), nv(), cd(), cf();
  232. int cd(), dnoy(), dnyy(), dnyz(), de(), dj(), dr(), dsxx(), dy();
  233. int gnoy(), gnyy(), gnyz(), ge(), gs(), rd(), rf(), sdxx(), sf();
  234.  
  235. struct _mvalue mvalue[]    = {
  236.     /*    _optyp1        _optyp2    byte1    byte2    lngth    code_fcn */
  237.         NULL,        NULL,    NULL,    NULL,    NULL,    NULL,
  238. /* ABCD */
  239.         _pd_ani,    _pd_ani,    0xc1,    0x08,    1,    dr,
  240.         _dn,        _dn,    0xc1,    0x00,    1,    dr,
  241. /* ADD.B */
  242.         _imd,        _dadr,    0x06,    0x00,    12,    nfoy,
  243.         _imd,        _dn,    0x06,    0x00,    2,    ndoy,
  244.         _sadr,        _dn,    0xd0,    0x00,    0,    de,
  245.         _dn,        _dadr,    0xd1,    0x00,    0,    sf,
  246.         _dn,        _dn,    0xd0,    0x00,    1,    dr,
  247. /* ADD.L */
  248.         _imd,        _an,    0xd1,    0xfc,    3,    dnyz,
  249.         _imd,        _dadr,    0x06,    0x80,    13,    nfyz,
  250.         _imd,        _dn,    0x06,    0x80,    3,    ndyz,
  251.         _an,        _an,    0xd1,    0xc8,    1,    dr,
  252.         _an,        _dn,    0xd0,    0x88,    1,    dr,
  253.         _dn,        _an,    0xd1,    0xc0,    1,    dr,
  254.         _dn,        _dn,    0xd0,    0x80,    1,    dr,
  255.         _dn,        _dadr,    0xd1,    0x80,    0,    sf,
  256.         _sadr,        _an,    0xd1,    0xc0,    0,    de,
  257.         _sadr,        _dn,    0xd0,    0x80,    0,    de,
  258. /* ADD.W */
  259.         _imd,        _an,    0xd0,    0xfc,    2,    dnyy,
  260.         _imd,        _dadr,    0x06,    0x40,    12,    nfyy,
  261.         _imd,        _dn,    0x06,    0x40,    2,    ndyy,
  262.         _an,        _an,    0xd0,    0xc8,    1,    dr,
  263.         _an,        _dn,    0xd0,    0x48,    1,    dr,
  264.         _dn,        _an,    0xd0,    0xc0,    1,    dr,
  265.         _dn,        _dn,    0xd0,    0x40,    1,    dr,
  266.         _dn,        _dadr,    0xd1,    0x40,    0,    sf,
  267.         _sadr,        _an,    0xd0,    0xc0,    0,    de,
  268.         _sadr,        _dn,    0xd0,    0x40,    0,    de,
  269. /* ADDQ.B */
  270.         _imd,        _dadr,    0x50,    0x00,    0,    cf,
  271.         _imd,        _dn,    0x50,    0x00,    1,    cd,
  272. /* ADDQ.L */
  273.         _imd,        _an,    0x50,    0x88,    1,    cd,
  274.         _imd,        _dadr,    0x50,    0x80,    0,    cf,
  275.         _imd,        _dn,    0x50,    0x80,    1,    cd,
  276. /* ADDQ.W */
  277.         _imd,        _an,    0x50,    0x48,    1,    cd,
  278.         _imd,        _dadr,    0x50,    0x40,    0,    cf,
  279.         _imd,        _dn,    0x50,    0x40,    1,    cd,
  280. /* ADDX.B */
  281.         _pd_ani,    _pd_ani,    0xd1,    0x08,    1,    dr,
  282.         _dn,        _dn,    0xd1,    0x00,    1,    dr,
  283. /* ADDX.L */
  284.         _pd_ani,    _pd_ani,    0xd1,    0x88,    1,    dr,
  285.         _dn,        _dn,    0xd1,    0x80,    1,    dr,
  286. /* ADDX.W */
  287.         _pd_ani,